package com.linchuansi.ioc;

import java.util.Map;

/**
 * Bean工厂*
 *
 * @author wb
 * @date 2025-11-24 19:45*@since 1.0.0
 */
public interface BeanFactory {
    /**
     * 获取bean
     *
     * @param beanName
     * @return
     */
    public Object getBean(String beanName) throws Exception;
    /**
     *
     * 根据类型推导获取bean
     * @param type
     * @return
     */
    <T> T getBean(Class<T> type)throws Exception;
    /**
     * 根据类型获取bean
     *
     * @param type
     * @return
     */

    <T> Map<String,T> getBeansOfType(Class<T> type)throws Exception;
    /**
     * 获取bean的类型
     *
     * @param name
     * @return
     */
    Class<?> getType(String name) throws Exception;
}
